home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d19
/
ckit15a.arc
/
CKIT_TC.ARC
/
CKIT.H
< prev
next >
Wrap
C/C++ Source or Header
|
1990-08-13
|
16KB
|
270 lines
/****************************************************************************
* FILE CKIT.H *
* Created 11-FEB-1990 Rickie W. Belitz *
* 820 Brentwood Drive *
* Maryville, Tennessee 37801 *
* BBS (615) 982-6512 *
* (615) 982-6537 *
* (615) 982-8723 *
* *
* Include file for CKIT - DOOR Toolkit *
* *
* *
****************************************************************************/
/******************************************************************************
* INCLUDE files needed *
*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <time.h>
#include <string.h>
#include <stdarg.h>
#include <share.h>
#include <io.h>
#define MICROSOFT 1
#define TURBOC 2
/****************************************************************************
* IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF *
****************************************************************************/
#if COMPILER == MICROSOFT
#include <malloc.h>
#else
#if COMPILER == TURBOC
#include <alloc.h>
#endif
#endif
/****************************************************************************
* ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF *
****************************************************************************/
/* data type definitions */
typedef unsigned char BYTE; /* Define BYTE to mean unsigned char */
/* logical constants */
#define NULL 0 /* integer constant */
#define ERR -1
#define EVER ;; /* Used in "for (EVER)" */
#define FALSE 0
#define TRUE 1
#define NOT_READY -1
#define NO_KEY 0
#define LOGOFF 0 /* Normal logoff */
#define NOCARRIER 1 /* Carrier lost */
#define TIMEOUT 2 /* Keyboard timeout */
#define SYSOP_O 3 /* Sysop request */
#define SYSTEMTIME 4 /* System time elapse */
/******************************************************************************
* ANSI color table indexes *
*******************************************************************************/
#define dkblue 1
#define dkgreen 2
#define dkcyan 3
#define dkred 4
#define dkviolet 5
#define magenta 5
#define brown 6
#define grey 7
#define dkgrey 8
#define blue 9
#define green 10
#define cyan 11
#define red 12
#define violet 13
#define yellow 14
#define white 15
/******************************************************************************
* External variable declarations *
******************************************************************************/
extern BYTE option; /* Defines how the user was logged off */
extern int DUMP_USER; /* Set to log off user from door */
extern char system_time_HHMMSS[]; /* Current system time */
extern char todays_date_MMDDYY[]; /* Current system date */
extern void adjust_time_allowed(short);
extern BYTE cmdline[]; /* Used to hold user input */
extern char par[]; /* Used to parse next cmd to */
extern short linenum; /* Number of lines displayed */
extern short graphics; /* ANSI in use */
extern short display; /* Local display on/off */
extern short local; /* Local mode indicator */
extern short printer; /* Printer online/offline */
extern short pagebell; /* Page bell on/off */
extern short callalarm; /* Caller alarm on/off */
extern short port; /* Port number in use */
extern short error_connection; /* Error correction modem? */
/* misc. see CKIT.DOC for more information on these */
extern short time_on,prev_used,time_limit,dload_limit,
time_added,time_credit, min_left,event_active,event_slide,
user_record, ansi_NG, record_lock, PCB12, PCB, expert, parity,
current_conference;
/* Pointer to string of conferences user is registered in */
extern BYTE *conferences;
/* C strings containing information read from PCBoard.sys or DOOR.SYS */
extern BYTE firstname[16]; /* User's firstname */
extern BYTE fullname[26]; /* User's fullname */
extern BYTE bps_open[6]; /* DTE baud rate */
extern BYTE baud_rate[6]; /* modem->modem baud rate */
extern BYTE sysop_next[2]; /* Sysop next indicator */
extern BYTE netchat[2]; /* Net chat status */
extern BYTE password[13]; /* User's password */
extern BYTE language[6]; /* Language in use */
extern BYTE event_time[6]; /* Scheduled event time */
extern BYTE aport[2]; /* ASCII port number in use */
extern char node[3]; /* Node number of call */
extern char upload_total[5]; /* Total files downloaded */
extern char dload_total[5]; /* Total files uploaded */
extern char daily_bytes[4]; /* Total Daily K bytes */
extern char download_Kbytes[10]; /* Total K bytes downloaded */
extern char upload_Kbytes[10]; /* Total K bytes uploaded */
extern BYTE time_logged[6];
extern char caller_bday[8]; /* User's birthday */
extern char main_dir[15]; /* System's main dir */
extern char gen_dir[15]; /* System's gen dir */
extern char sysop_name[15]; /* Sysop's name */
extern char sysop_alias[15]; /* Sysop's alias name */
extern char last_file_scan[8]; /* Last new file scan */
extern char max_files[4]; /* Max. daily files avail */
extern char daily_files[4]; /* Number of files dloaded */
extern char total_doors[4]; /* Number of doors opened */
extern char msgs_left[4]; /* Number of messages left */
extern BYTE page_length; /* User's page_length */
extern short FORCEOFFHOOK; /* Set to TRUE or FALSE */
extern short LOGOFFMSG; /* Set to TRUE or FALSE */
extern short USERSFILE; /* Set true if you want user file info */
extern char progname[20]; /* Put you program name here! */
/* MAXIMUM 20 CHARACTERS! */
/******************************************************************************
* Structure declarations *
******************************************************************************/
typedef struct pcbuserstype {
char name[26]; /* First and Last name */
char city[25]; /* City and State */
char pwrd[13]; /* Password */
char bphone[14]; /* Business/Data phone number */
char phone[14]; /* Home phone number */
char last_date[7]; /* Last date on in (YYMMDD) format */
char last_time[6]; /* Last logon time in HH:MM) format */
char expert[2]; /* Expert Mode (Y or N) */
char protocol[2]; /* Protocol type */
char space1; /* Reserved */
char filedate[7]; /* Last DIR look date (YYMMDD) format */
BYTE security; /* Security level of user */
short total_calls; /* Number of times on */
BYTE page_length; /* Page length */
unsigned long uploads; /* Number of Uploads */
unsigned long downloads; /* Number of Downloads */
double dload_bytes; /* Daily dload bytes so far */
char comment1[31]; /* User maintained comment */
char comment2[31]; /* Sysop maintained comment */
short time_used; /* Elapsed time on system */
char expire_date[7]; /* Subscription Reg. Date (YYMMDD) */
BYTE expire_level; /* Expired security level */
BYTE current_conf; /* Area number last in */
BYTE conferences[6]; /* Conferences area allowed in */
BYTE expire_conf[6]; /* Expired conference areas */
BYTE scan_conf[6]; /* Conferences desired for mail scan */
double dload_total; /* Total bytes downloaded - all calls */
double upload_total; /* Total bytes uploaded - all calls */
char delete_user[2]; /* Delete user flag (Y or N) */
long last_read[4][39]; /* Last Read Message Area pointers */
BYTE space2[15]; /* Reserved */
};
extern struct pcbuserstype user;
/******************************************************************************
* External function prototypes *
******************************************************************************/
extern void clear_screen(void);
extern void set_r_c(short, short);
extern void open_door(char *, char *);
extern void close_door(void);
extern void s_putv(); /* High level send variable string I/O function */
extern void s_puts(char *); /* High level send string I/O function */
extern void s_putsn(char *); /* High level send string LOCAL only */
extern void s_putstd(char *); /* High level send string using STD output */
extern void s_putc(BYTE); /* High level send char. I/O function */
extern void newline(void); /* send a Carriage return, line feed */
extern void clear_row(short); /* Clear a given row of screen */
extern void color(short); /* Select ANSI color to use */
extern void pos_cursor(short, short); /* Position cursor using ANSI */
extern void clr_screen(void); /* Clear local/remote screens */
extern void back_space(short); /* Destructive backspace local/remote */
extern void clear_eol(void); /* Clear to end of line local/remote */
extern short display_file(char *); /* Display file local/remote */
extern void prompt_def(char *, char *); /* Display prompt, with default string */
extern void get_def(char *, char *); /* Same as prompt_def, but gets input */
extern void get_defn(char *, char *); /* Same as get_def, appends "(Enter)=none?" */
extern void get_defen(char *); /* Same as get_def, but default is always "(Enter=none? " */
extern void get_defyn(char *, short); /* Get input with yes/no default based on short value */
extern short nomore(void); /* prompt more?, returns TRUE if no or */
extern size_t inkey(void); /* Read char. from local/remote */
extern size_t getkey(void); /* Read char. from local keyboard */
extern void force_enter(void); /* Force user to press enter key to continue */
extern void get_cmdline(void);
extern void get_cmdline_raw(short); /* Get cmdline, erase prompt based on short */
extern void input(BYTE *, short); /* Read input into cmdline, local/remote */
extern short keystat(); /* Check if key waiting */
extern BYTE receive(void); /* Get character receieved from the receive buffer */
extern BYTE sio_getbyte (void); /* Returns byte from port, if available */
extern char get_nextpar(void);
extern void display_time(void); /* Display XXXX used, XXXX left (x = mins */
extern void check_time_left(void); /* Check if user time is up, sets DUMPUSER */
extern void adjust_time_allowed(short); /* Add/Subtract user time left */
extern short event_minutes(void); /* Return minutes from midnight of event */
extern void lower_dtr(void); /* Lower DTR line on serial port */
extern void raise_dtr(void); /* Raise DTR line on serial port */
extern void force_offhook(void); /* Force modem to hangup, go offhook */
extern BYTE check_cd(void); /* Return CARRIER status, Non-Zero = CARRIER */
extern void transmit_data(char *); /* Xmit to remote only, with CARRIER detect */
extern void transmit_modem(char *); /* Xmit to modem, WITHOUT CARRIER detect */
extern size_t tqueue_len(void); /* Returns length (in bytes) of serial xmit buffer */
extern void flush_rqueue(void); /* Flush serial input buffer */
extern unsigned long get_time(void);
extern void wait(short);
extern short check_CR(void); /* Check for Carriage Return, TRUE/FALSE */
extern short check_keypress(BYTE); /* Check for any ASCII code press */
extern void purge_buffer(BYTE *, short); /* Purge buffer to NULLS */
extern void debug_on(void); /* Disable keyboard timer etc. */
extern short dos_shell(char *); /* Execute external program */
/****************************************************************************
* IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF *
****************************************************************************/
#if COMPILER == MICROSOFT
extern void _delay(short); /* Gen. Purpose delay X 55 milliseconds */
#endif
/****************************************************************************
* ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF *
****************************************************************************/
/******************************************************************************
************************ E N D OF M O D U L E ******************************/